Changement utilisateur avec sudo (Switching user using sudo)

Introduction

Cette leçon explique comment passer à d'autres comptes à l'aide de la commande sudo.

La commande sudo - Super User Do

Une autre façon de changer d'utilisateur ou d'exécuter des commandes en tant qu'autres est d'utiliser la commande sudo. La syntaxe de la commande sudo est la suivante:

sudo command

La commande sudo vous permet d'exécuter des programmes avec les privilèges de sécurité d'un autre utilisateur. Comme su, si aucun nom d'utilisateur n'est spécifié, il suppose que vous essayez d'exécuter des commandes en tant que superutilisateur. C'est pourquoi sudo est appelé superuser do.

Il est généralement utilisé pour installer, démarrer et arrêter des applications qui nécessitent les privilèges de l'utilisateur root. L'un des avantages de l'utilisation de sudo par rapport à la commande su est que vous n'avez pas besoin de connaître le mot de passe de l'autre utilisateur. Cela peut éliminer certains problèmes liés à l'utilisation de mots de passe partagés dans des comptes génériques. Lorsque vous exécutez la commande sudo, vous êtes invité à saisir votre mot de passe. Si la configuration sudo autorise l'accès, cette commande est exécutée.

La configuration sudo est généralement contrôlée par l'administrateur système et nécessite un accès root pour être modifiée. Bien entendu, sur votre système personnel, vous avez accès au compte root, et vous êtes donc également l'administrateur système.

Utilisation de sudo

Pour voir les commandes que vous pouvez exécuter avec sudo, utilisez sudo -l. Pour exécuter une commande en tant qu'utilisateur root, utilisez la commande sudo. Vous pouvez spécifier un utilisateur avec -u, par exemple la commande sudo -u root est identique à la commande sudo. Cependant, si vous voulez exécuter une commande en tant qu'autre utilisateur, vous devez le spécifier avec -u. Ainsi, par exemple, la commande sudo -u nikki.

Commands

Meaning

sudo -l

List available commands.

sudo command

Run command as root.

sudo -u root command

Run command as root.

sudo -u user command

Run command as user.

You can use sudo su to switch to the superuser account. You can use sudo su - to switch to the superuser account with root's environment. The sudo su - username would switch to that username's account with an environment that you would expect to see when you logged in as that user.

Commands

Meaning

sudo su

Switch to the superuser account.

sudo su -

Switch to the superuser account with root's environment.

sudo su - username

Switch to the username's account with the username's environment.

Another way to switch to another account with sudo is to use the -s option. If you run sudo -s that will start a shell as root. You can specify a user with the -u option.

Commands

Meaning

sudo -s

Start a shell as root

sudo -u root -s

Same as above.

sudo -u user -s

Start a shell as user.

Exemples

Exemple 1 : Quelle commande exécuter avec sudo.

Vous pouvez exécuter ce qui suit pour voir quelle commande peut être exécutée avec sudo :

$ sudo -l

Matching Defaults entries for robin on robin-ThinkPad-T410:

  env_reset, mail_badpass,

  secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

 

User robin may run the following commands on robin-ThinkPad-T410:

  (ALL : ALL) ALL

Dans ce cas, l'utilisateur robin peut exécuter n'importe quelle commande.

Exemple 2 : Exécution d'une commande avec sudo

Exécution d'une commande avec  sudo

$ sudo /etc/mongodb start

mongodb started

Exemple 3 : Exécuter une commande en tant qu'autre utilisateur

Pour exécuter une commande en tant qu'autre utilisateur :

$ sudo -u nikki /etc/nikkiapp/bin/start

Nikki's app started

Running as user: nikki

Exemple 4 : Passage au compte root

Pour passer au compte root :

$ sudo -s

$ whoami

root

Modification de la configuration de sudo

Si vous devez modifier la configuration de sudo, utilisez la commande visudo. Elle lance effectivement l'éditeur vi et modifie le fichier /etc/sudoers. La commande visudo doit être exécutée avec des privilèges approuvés. Cela signifie que vous devez passer au compte root, par exemple : su root visudo ou exécuter sudo visudo avec votre propre compte.

Le fichier sudoers contient une liste d'utilisateurs, et les commandes que ces utilisateurs peuvent exécuter et en tant que quels utilisateurs ces commandes peuvent être exécutées.

Il existe de nombreuses options pour le fichier sudoers, mais le format le plus simple et celui que vous verrez assez souvent est une ligne qui donne à un utilisateur spécifique un ensemble de commandes qu'il ou elle peut exécuter. Le format est le suivant

user host=(users) [NOPASSWORD:]commands

Voici deux exemples :

admin ALL=(ALL) NOPASSWORD:ALL

robin servername=(root) /etc/init.d/apps

La commande su

Une autre façon de changer d'utilisateur est d'utiliser la commande su. Les détails de su sont couverts dans su command.